\section{心得体会}

通过本次系统开发工具基础课程的学习与实践，我深入掌握了在Linux环境下进行软件开发所需的核心技能，并对调试、性能分析、元编程以及深度学习框架PyTorch的应用有了更全面的认识。

在学习初期，我重新巩固了Shell的各项基础操作。通过对 \texttt{journalctl} 日志查看、\texttt{pgrep} 和 \texttt{pkill} 进程管理等命令的实践，我进一步熟悉了Linux的文件系统和任务控制。编写 \texttt{pidwait} 等Bash脚本的过程，让我深刻体会到了自动化编程的强大之处。它不仅能将重复性的手动操作转化为高效的自动化流程，还培养了我严谨的编程思维。利用 \texttt{shellcheck} 对脚本进行静态检查，也让我养成了编写高质量、规范化代码的良好习惯。

在Python编程方面，我从基础的命令行应用开发入手，通过电话簿和待办事项列表等项目，将函数、面向对象、JSON文件处理、异常捕获等核心知识点融会贯通。在视觉应用探索中，我实践了Pillow、Numpy、Scipy和Opencv等多个主流图像处理库，并真实地遇到了依赖管理与问题排查的挑战，例如 \texttt{Pgmagick} 的安装失败。这段经历让我认识到，解决实际开发中的环境配置和依赖问题，是每一位软件工程师必须具备的关键能力。

本次实验的一大收获是系统学习了多种调试及性能分析工具。通过 \texttt{pdb} 的实践教程，我掌握了Python代码的单步调试、断点设置等技巧。\texttt{cProfile} 和 \texttt{line\_profile} 则让我能够清晰地分析代码的性能瓶颈，而 \texttt{pycallgraph} 与 \texttt{graphviz} 的结合，更是将函数的调用关系直观地呈现在眼前。这些工具的运用，使我不再仅仅满足于代码能够运行，而是开始关注其执行效率与资源消耗，为编写高性能应用程序打下了坚实的基础。

元编程部分让我对软件构建的底层逻辑有了新的认识。通过学习 \texttt{makefiles}，我理解了如何自动化管理项目的编译与构建流程。对Rust构建系统中依赖版本管理的学习，让我了解了现代包管理器中版本控制的精妙之处。而将Git作为简单的持续集成（CI）系统，以及构建自己的GitHub Action，则让我亲身体验了DevOps文化的核心理念。这些实践不仅提升了我的工程化能力，也让我深刻感受到了自动化测试与部署在现代软件开发中的重要性。

PyTorch教程为我打开了深度学习世界的大门。从基本的张量操作，到亲手构建并训练我的第一个神经网络，再到应用卷积神经网络（CNN）完成图像分类，每一个环节都充满了挑战与乐趣。学习PyTorch的数据处理与加载机制，让我理解了如何高效地管理数据集。最后的CIFAR-10图像分类综合项目，更是对我所学知识的一次全面检验。整个过程不仅锻炼了我的编程能力，也让我对人工智能技术有了更直观和深入的理解。

\bigskip % 增加一些垂直间距
\noindent % 防止段首缩进
总而言之，本次课程内容全面且深入，理论与实践紧密结合。通过一系列精心设计的实验，我不仅掌握了多种系统开发工具的使用，更重要的是培养了自动化思维和解决复杂问题的能力，为未来的软件工程学习与职业生涯奠定了坚实的基础。
